It has become desirable to provide secure environments, sometimes referred to as trusted execution environments, to execute certain applications that require increased security, such as e-commerce, for example. A trusted execution environment may utilize a secure co-processor unit executing on a dedicated portion of a chipset. A trusted execution environment may be used to execute an entire application, or a portion of an application containing sensitive operations, which may minimize the risk of the application, or operations performed by the application, being compromised by a security threat.
Trusted execution environments, while generally executing separately from a host operating system, still require information from the host operating system to perform secure operations. Typically, a mailbox, which may be a storage component or logical object stored therein, may be used to transmit messages containing data between a host operating system and a trusted execution environment. In short, messages may be placed into a mailbox by the host operating system and later retrieved from the mailbox by the trusted execution environment, and vice versa. In addition to transmitting messages, a mailbox infrastructure may be used to securely route messages between applications and mailboxes within the trusted execution environment specifically assigned to those applications.
Some trusted execution environments may be resource-constrained because they may operate using a co-processor, which may have less resources than a primary processing unit. As such, a trusted execution environment may be limited in memory capacity and processing power. Thus, mailboxes advantageously may be implemented in a manner such that minimal resources are used to transmit messages between a host operating system and a trusted execution environment.